﻿/*
 * 这是一个常用函数的合集
 * by chancidal
 * */
package chancidal.utils {
	//
	public class Tools {
		//
		/*
		 * 获取两点的距离
		 * 4个参数:其中一点的x,y坐标,另一个点的x,y坐标
		 * 默认四个参数均为0;返回一个Number;
		 * */
		public static function getDis(px1:Number = 0, py1:Number = 0, px2:Number = 0, py2:Number = 0):Number {
			var disX:Number = px2 - px1;
			var disY:Number = py2 - py1;
			var hyp:Number = Math.sqrt(Math.pow(disX, 2) + Math.pow(disY, 2));
			return hyp;
		}
		/* 获取两点之间的角度
		 * 4个参数:其中一点的x,y坐标,另一个点的x,y坐标
		 * 默认四个参数均为0;返回的是角度deg,不是弧度值
		 * 逆时针为角度正方向(与flash的相反);
		 * */
		public static function getAngle(px1:Number = 0, py1:Number = 0, px2:Number = 0, py2:Number = 0):Number {
			var disX:Number = px2 - px1;
			var disY:Number = py2 - py1;
			var hyp:Number = Tools.getDis(px1, py1, px2, py2);
			var cos:Number = (px2 - px1) / hyp;
			var rad:Number = Math.acos(cos);
			var deg:Number = 180 * rad / Math.PI;
			if (disY < 0) {
				deg = -deg;
			}else if ((disY == 0) && (disX < 0)) {
				deg = 180;
			}
			return deg;
		}
		/* 倒转字符串
		 * 参数:一个字符串,返回该字符串倒转后的字符串,不修改原字符串
		 * */
		public static function reverseString(str:String):String {
			var arr:Array = str.split("");
			arr.reverse();
			var resultStr:String = arr.join("");
			return resultStr;
		}
		//////////////////////////////////////////////////
	}
}